﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; using Montana.DAC;
using System.Data.OleDb;

namespace Montana.Entidades
{
    public class ReciboDocumento : Datos<ReciboDocumento>
    {
        //umns.Add("Fecha", 80);
        //lswCancelar.Columns.Add("Documento", 110);
        //lswCancelar.Columns.Add("Importe", 75, HorizontalAlignment.Right);
        //lswCancelar.Columns.Add("Cancelado", 75, HorizontalAlignment.Right);
        //lswCancelar.Columns.Add("Saldo", 75, HorizontalAlignment.Right);
        //lswCancelar.Columns.Add("Cancela", 75, HorizontalAlignment.Right);

        public DateTime Fecha { get; set; }
        public string Letra { get; set; }
        public decimal Importetotal { get; set; }
        public decimal Importecancelado { get; set; }
        public decimal Cancela { get; set; }

        public decimal Saldo 
        { 
            get
            {
                return Importetotal - Importecancelado;
            } 
        }

        protected override string SQLBasico
        {
            get { return ""; }
        }

        public List<ReciboDocumento> BuscarDocumentosPorRecibo(int idRecibo)
        {
            OleDbDataReader dr = TraerDataReader(@"select f.fecha, f.nombre, f.letra, f.importetotal, 
                    f.importecancelado, rd.importecancelado as Cancela 
                from (factura f inner join recibodocumento rd on f.id=rd.iddocumento)
                where rd.idrecibo=" + idRecibo);

            List<ReciboDocumento> documentos = new List<ReciboDocumento>();
            while (dr.Read())
            {
                ReciboDocumento rd = new ReciboDocumento();

                rd.Nombre = dr["Nombre"].ToString();
                rd.Fecha = (DateTime)dr["Fecha"];
                rd.Letra = dr["Letra"].ToString();
                rd.Importetotal = (decimal)dr["ImporteTotal"];
                rd.Importecancelado = (decimal)dr["ImporteCancelado"];
                rd.Cancela = (decimal)dr["Cancela"];

                documentos.Add(rd);
            }

            return documentos;
        }
    }
}
